#include "listitembox.h"
#include "ui_listitembox.h"

/////////////////////////////////////////////////////////
//我的音乐显示界面中的音乐列表的Item显示元素///////////////////
////////////////////////////////////////////////////////

ListItemBox::ListItemBox(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ListItemBox),
    isLike(false)
{
    ui->setupUi(this);
}

ListItemBox::~ListItemBox()
{
    delete ui;
}

//设置歌曲名称
void ListItemBox::setMusicName(const QString& musicName)
{
    ui->musicNameLabel->setText(musicName);
}

//设置歌曲作者
void ListItemBox::setMusicSinger(const QString &musicSinger)
{
    ui->musicSingerLabel->setText(musicSinger);
}

//设置歌曲专辑
void ListItemBox::setMusicAlbum(const QString &musicAlbum)
{
    ui->albumNameLabel->setText(musicAlbum);
}

//设置歌曲是否为我喜欢
void ListItemBox::setLikeMusic(bool isLike)
{
    this->isLike=isLike;
    if(isLike)
    {
        ui->likeBtn->setIcon(QIcon(":/image/mylike.png"));
    }
    else
    {
        ui->likeBtn->setIcon(QIcon(":/image/myunlike.png"));
    }
}

//重写鼠标进入和离开事件实现hover效果
void ListItemBox::enterEvent(QEvent *event)
{
    (void)event;
    this->setStyleSheet("background-color:#efefef");//???原来的颜色是哪里出来的
}

void ListItemBox::leaveEvent(QEvent *event)
{
    (void)event;
    this->setStyleSheet("");
}

//点击我喜欢按钮后的逻辑处理
void ListItemBox::on_likeBtn_clicked()
{
    isLike=!isLike;
    setLikeMusic(isLike);
    //修改isLike状态和相应图标后,还要修改Music对象的isLike属性,以及修改likePage,localPage，recentPage的歌曲列表(需要同步歌曲我喜欢的状态)
    //点击我喜欢按钮后发送信号通知CommonPage拦截该信号进行相应处理
    //qqmusic中虽然有musicList,但是并不知道点击的Item对应哪首歌曲
    //CommonPage中因为在ListItemBox中,点击该按钮后,可以通知ListWidget来处理
    emit setIsLike(isLike);
}
